package cn.modoumama.springboot.dubbo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;

import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ReferenceConfig;
import com.alibaba.dubbo.config.RegistryConfig;

/** 
 * 类描述：获取dubbo实例<br>
 * <br/>
 * 创建人：邓强   <br>
 * 创建时间：2018年1月3日 上午11:15:59    <br> 
 * 修改人：  <br>
 * 修改时间：2018年1月3日 上午11:15:59   <br>  
 * 修改备注：     <br>
 * @version   V1.0      
 */
@EnableConfigurationProperties({ApplicationConfig.class,RegistryConfig.class})
public class DubboReference {
	@Autowired
	private ApplicationConfig applicationConfig;
	@Autowired
	private RegistryConfig registryConfig;
	
	public <T> T getDubboService(String interfStr,String version) throws ClassNotFoundException {
		ReferenceConfig<T> rc = new ReferenceConfig<T>();
		rc.setApplication(applicationConfig);
		rc.setRegistry(registryConfig);
		rc.setInterface(interfStr);
		rc.setVersion(version);
		rc.setTimeout(1000);
		return rc.get();
	}
	
	public <T> T getDubboService(Class<T> interf,String version) throws ClassNotFoundException {
		ReferenceConfig<T> rc = new ReferenceConfig<T>();
		rc.setApplication(applicationConfig);
		rc.setRegistry(registryConfig);
		rc.setInterface(interf);
		rc.setVersion(version);
		rc.setTimeout(1000);
		return rc.get();
	}
}
